package com.proposition.paper.service;

import com.baomidou.mybatisplus.service.IService;
import com.proposition.commons.enums.PaperPattern;
import com.proposition.commons.enums.PaperType;
import com.proposition.commons.model.ExamCategory;
import com.proposition.commons.model.ExamClass;
import com.proposition.commons.model.ExamCountForPaper;
import com.proposition.commons.model.Paper;

import java.util.List;
import java.util.Map;

/**
 * 试卷接口
 *
 * @author 杨凯
 * @create 2017-11-06 10:39
 **/
public interface PaperService extends IService<Paper> {



	/**
	 * 获取年度列表
	 * @return
	 */
	List<String> selectYearList();

	/**
	 *
	 * 试卷审核
	 * @param paperId 试卷ID
	 * @param checkStatus 审核状态
	 * @param mark 备注
	 * @param flag 是否通过
	 * @return
	 */
	void checkPaper(String paperId, String checkStatus,String mark,boolean flag);

	/**
	 * 试卷撤销审核
	 * @param paperId 试卷Id
	 * @param checkStatus 审核状态
	 * @return
	 */
	void revokePaper(String paperId,String checkStatus);


	/**
	 * 根据站类型生成试卷编号
	 * @param paperPattern
	 * @param paperType
	 * @return
	 */
	String generatePaperNumber(PaperPattern paperPattern, PaperType paperType);


	/**
	 * 添加试卷
	 * @param pattern 站类型
	 * @param paperType A/B卷
	 * @param exam1 试题一
	 * @param exam2 试题二
	 * @param exam3 试题三
	 * @return
	 */
	void paperAdd(PaperPattern pattern, PaperType paperType,String exam1,String exam2,String exam3);


	/**
	 * 获取试题分类
	 * @return
	 */
	List<ExamClass> findExamClass();

	/**
	 * 获取子分类
	 * @param id
	 * @return
	 */
	List<ExamCategory> findExamCategory(Integer id);

	/**
	 * 删除试卷信息
	 * @param paperId
	 * @return
	 */
	void deletePaper(String paperId);


	/**
	 * 获取试卷详情
	 * @param paperId
	 * @return
	 */
	Map<String,Object> getPaperDetail(String paperId);


	/**
	 * 获取试题数量
	 * @param checkStatus
	 * @return
	 */
	ExamCountForPaper getExamCount(int checkStatus);

}
